KVMを利用してVMImportを行う方法
はじめに
くどうです。
今回はKVMを利用したVM Importについて解説していきます。
VM Importのおさらい
VM Importはオンプレにある仮想マシンをAWSに移行する方法です。
移行できるOSは以下になります。
- Windows(32 ビットと 64 ビット)
- Microsoft Windows Server 2003(Standard、Datacenter、Enterprise)(Service Pack 1 適用済み)以降
- Microsoft Windows Server 2003 R2(Standard、Datacenter、Enterprise)
- Microsoft Windows Server 2008(Standard、Datacenter、Enterprise)
- Microsoft Windows Server 2008 R2(Standard、Datacenter、Enterprise。
- Microsoft Windows Server 2012(Standard、Datacenter)
- Linux/Unix(64 ビット)
- Red Hat Enterprise Linux(RHEL)5.1-6.5
- CentOS 5.1-6.5
- Ubuntu 12.04, 12.10, 13.04, 13.10
- Debian 6.0.0-6.0.8, 7.0.0-7.2.0
- カスタムKernelには対応していません
対応している仮想ディスクのイメージ形式は以下になります。
- RAW 形式
- Virtual Hard Disk(VHD)イメージ形式
- ESX Virtual Machine Disk(VMDK)イメージ形式
さらに詳しい情報は下記のサイトよりご確認をお願いします。
インスタンスのインポートとエクスポート 前提条件
今回はKVMを利用してRAW形式のイメージをインポートを行っていきます。
あじぇんだ
- Ubuntuのインストール
- KVMのインストール
- ゲストOSのインストール
- VM Import
- 動作確認
環境
OS:Ubuntu Server 14.04 LTS
ハイパーバイザー:KVM
インポート形式:RAW形式
1.Ubuntuのインストール
ホストOSとなるOSは今回はUbuntuを利用します。
KVMがインストール可能であるOSなら、何でも問題ないでしょう。
最新のバージョンをダウンロードします。
http://www.ubuntu.com/download/server
今回、利用したイメージは
ubuntu-14.04-server-amd64.iso
次にCD/DVDなどに書き込みホストOSをインストールします。
KVMを利用するためにGUI操作が行えるようデスクトップ環境を整える必要があります。
(VNCなどを利用してリモートからの操作でもよいです)
Serverイメージを利用する場合、デスクトップ環境をインストールします。
sudo apt-get install ubuntu-desktop
ダウンロードサイズが非常に大きいです。
まてない人は最初からUbuntu Desktopをインストールしましょう。
2.KVMのインストール
次にKVMをインストールしていきいます。
sudo apt-get install kvm libvirt-bin bridge-utils virt-manager qemu-system
以上でインストール完了です。一度再起動します。
3.ゲストOSをインストール
Virtual Machine Managerを立ち上げます。
ここで想定しているOSは移行する環境を想定しています。ただし、VM Importに対応しているOSには注意が必要です。
Linuxの場合、カスタムKernelは対応していないことにも注意が必要です。
今回導入したOSイメージは
ubuntu-12.10-server-amd64.iso
KVMへのインストールは、通常のOSのインストールと変わらないため割愛します。
ただし、SSHのインストールとログインの確認だけは行ってください。
Linuxの場合、移行後にSSHでのログインが必須となります。
Windowsはリモートデスクトップによる接続になります。
4.VM Import
VM Importを行うためには Amazon EC2 API Tools インストールする必要があります。
apt-get install ec2-api-tools
事前にshellでも書いておきましょう。import.shと保存します。
KVMで作成したイメージはubuntu.imgになります。
#!/bin/bash VM_NAME=/var/lib/libvirt/images/ubuntu.img AWS_ACCESS_KEY=<アクセスキー> AWS_SECRET_KEY=<シークレットキー> S3_BUCKET_NAME=<バケット名> S3_BUCKET_REGION=ap-northeast-1 EC2_INSTANCE=m3.xlarge VM_FORMAT=RAW ARCHITECTURE=x86_64 S3_OWNER_ACCESS_KEY=$AWS_ACCESS_KEY S3_OWNER_SECRET_KEY=$AWS_SECRET_KEY ec2-import-instance \ $VM_NAME \ -t $EC2_INSTANCE \ -f $VM_FORMAT \ -a $ARCHITECTURE \ -b $S3_BUCKET_NAME \ -o $S3_OWNER_ACCESS_KEY \ -w $S3_OWNER_SECRET_KEY \ -p Linux \ --region $S3_BUCKET_REGION \ --aws-access-key $AWS_ACCESS_KEY \ --aws-secret-key $AWS_SECRET_KEY \ --debug
では実行してみます。
. import.sh
import.sh実行結果(ec2-import-instance)
ec2-import-instanceによりS3に分割されアップロードされます。
その後、EC2インスタンスへ変換されます。
ec2-describe-conversion-tasks で変換途中の確認を行えます。
ec2-describe-conversion-tasks 実行結果
インスタンスへ変換されるのを待ちます。
30分程度かかります。
以上で、VM importは完了です。
5.動作確認
インポートしたインスタンスは起動されていないため、AWSコンソールマネージャより起動します。
対象インスタンスIDはec2-describe-conversion-tasksにて確認が行えます。
インスタンスには、ElasticIPを付与する必要があります。
Linuxの場合、起動後SSHで接続します。
接続後は、キーペアによる認証に変更することをお勧めします。
ログインできたらVM Importによる移行は完了です。
あとは、ec2-delete-disk-image でごみ掃除をしましょう。
まとめ
KVMによるRAWイメージのVM Importを行いました。
Linuxの移行も簡単に行うことが可能です。
VM Importで社内移行を楽に!